草庐IT

c++ - std::iterator、指针和 VC++ 警告 C4996

全部标签

c++ - std::regex_replace 给了我意想不到的结果

我在C++Windows项目(VisualStudio2010)中使用std::regex_replace。代码如下所示:std::stringstr("http://www.wikipedia.org/");std::regexfromRegex("http://([^@:/]+\\.)?wik(ipedia|imedia)\\.org/",std::regex_constants::icase);std::stringfmt("https://$1wik$2.org/");std::stringresult=std::regex_replace(str,fromRegex,fmt)

在 Windows 核心文件上调用 fopen 返回 NULL 指针

我试图通过它们的绝对路径(在其他地方以编程方式确定)打开几个不同的文件,这样我就可以获得它们的SHA1哈希*,其中一些是核心Windows文件。当我尝试按如下方式打开文件时,fopen()在某些(但不是全部)文件上返回NULL(通常文件名是通过QueryFullProcessImageName获取的,但为了以防万一,我对其进行了硬编码):char*filename="c:\\windows\\system32\\spoolsv.exe";FILE*currFileRead=fopen(filename,"rb");if(currFileRead==NULL){printf("Faile

c++ - 使用 C++/STL 将 std::vector<CString> 展平为 multi_sz 的推荐方法是什么

我想将存储在std::vector中的字符串列表(ATL::CString)写入Windows注册表中的REG_MULTI_SZ值。我知道如何在普通C中执行此操作(迭代一次以获得总长度,分配一个缓冲区,将字符串复制到由“\0”分隔的缓冲区)。知道我使用STL尝试了以下操作(抱歉,我必须将VS2010与“foreach”一起使用):std::vectormultiline_sz;foreach(CStringentryinmyStringList){TCHAR*buf=entry.GetBuffer();multiline_sz.insert(multiline_sz.end(),&bu

c++ - std::istream 上的 Windows IStream 接口(interface)

在Windows上的C++中,是否有任何简单的方法可以为现有std::stream对象创建(COM)IStream接口(interface)?一个示例是使用IWICStream::InitializeFromIStream()从std::cin读取图像。 最佳答案 没有标准的实现。您需要编写实现IStream接口(interface)并根据需要在内部委托(delegate)给std::stream的类(或寻找第三方类)。但是,您可能无法实现IStream::Stat(),它通常用于检索流的数据大小。对于std::cin,您不知道提供

仅在 Windows 中的 C 程序编译器警告 (MinGW-w64)

我构建了一个多语言软件图像处理程序,并使其普遍适用于MacOSX和Ubuntu的二进制文件。二进制文件已经在各自的操作系统上进行了测试,一切正常。我最近还尝试发布适用于Windows(64位)的二进制文件,但是当我创建共享库(dll)文件时,GCC(通过MinGW-w64)编译器针对其中一个C程序发出了警告。这在MacOSX或Ubuntu中没有发生。以下是C文件中的警告和相应的代码行:warning:passingargument3of'_beginthreadex'fromincompatiblepointertype[enabledbydefault]第464行:ThreadLis

c++ - 预分配 std::string 以传递到 WinAPI

我很好奇下面的代码是否正确?我在较旧版本的VS2008上运行它,用于仅限Windows的C++项目。我的目标是在std::string中预分配内存,以将其传递到知道所需字符大小的WinAPI中://'hWnd'=windowhandleintnLn=GetWindowTextLength(hWnd);//Textvariabletocollecttextinstd::wstringstr;str.reserve(nLn);GetWindowText(hWnd,(LPTSTR)str.data(),nLn);我在这里担心的是str.data()返回constwchar_t*并且GetWi

c++ - 从 UWP vc++ 中生成的字节数组生成图像

引用Question由@DecadeMoon回答我如何使用该方法从字节数组而不是图像文件生成图像。我试过如下但没有任何效果。没有显示图像std::vectordata=std::vector(imgx->Height*imgx->Width*4);intoffset;for(introw=0;rowHeight;row++){for(intcol=0;colWidth;col++){offset=(row*(int)(imgx->Width*4))+(col*4);data[offset]=0x58;//Reddata[offset+1]=0x58;//Greendata[offset

r - 启动期间 - 警告消息 : Setting LC_CTYPE= failed on Windows

升级Windows10后,每当我启动Rstudio时,我都会收到以下警告消息。启动期间-警告消息:设置LC_CTYPE=失败我目前正在运行MicrosoftROpen版本。有什么方法可以修复此警告消息,我在stackoverflow上找到了一些适用于Mac而不是适用于Windows的解决方案。 最佳答案 我发现针对该问题的最佳解决方法是设置一个.Renviron文件并覆盖那里的语言环境。如何设置和修改.Renviron文件在打开的书的相关章节中有描述EfficientRProgramming.因此,只需要复制这些行user_renv

windows - 如何在没有警告对话框的情况下从 Vista 中的网络共享运行批处理文件?

Thepublishercouldnotbeverified.Areyousureyouwanttorunthissoftware?如何在启动时自动运行这个bat文件而不被弹出窗口阻止?批处理文件位于另一台计算机的网络共享中。 最佳答案 预计到达时间:您在评论中提到,从网络中的另一台机器运行批处理时会出现这种情况。在这种情况下,文件来自的区域几乎是不言而喻的,不需要在流中。您可以按照以下步骤删除该警告:打开InternetExplorer的1Internet选项点击“安全”标签选择“本地Intranet”区域点击“网站”按钮点击“高

c++ - VC++ 2008 Express 上的编译器问题,看似正确的代码会引发错误

一段时间以来,我一直试图重新开始编码,所以我想我应该从一些简单的SDL开始,现在,没有文件i/o,编译正常,但是当我输入stdio代码时,它开始抛出错误。这个我不确定,我没有看到代码本身有任何问题,但是,就像我说的,我还是个新手,我想我来这里是为了找一个有更多经验的人这种东西看看吧。我想我的问题可以归结为:“为什么这个不能在Microsoft的VisualC++2008Express下编译?”我已将错误日志附在代码片段的底部。在此先感谢您的帮助。#include"SDL/SDL.h"#include"stdio.h"intmain(intargc,char*argv[]){FILE*s